<?php
// Nettoyage de caractères
			function suppr_spe_char($chaine) {
   			$accents = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ','.','/');
   			$sans = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y',' ',' ');
   			return str_replace($accents, $sans, $chaine);
			}
require_once("dao/Dao.php");
require_once("dao/ClientDao.php");
require_once("dao/CarteSimDao.php");
require_once('utils/csv.inc.php');
require_once('utils/ftp.inc.php');

/**
 * DAO de l'objet Client.
 * 
 * @author Ludovic
 */
class SimSwapDao extends Dao{

	protected static $tableName = "detail_client";
	
	/**
	 * Recherche des clients par code client hto
	 */
	public static function getAll(){
		return parent::find(SimSwapDao::$tableName);
	}
	
	/**
	 * Recherche des clients par sim pour sim/swap
	 */
	public static function searchBySim($sim){
		return parent::query('SELECT * FROM `detail_client` WHERE num_sim="'.$sim.'" AND type_offre = "mobile" ');
	}
	
	/**
	 * Recherche des clients par numero pour le sim swap
	 */
	public static function searchByNumero($numero){
		$clients = parent::query('SELECT * FROM detail_client WHERE ndi="'.$numero.'" AND type_offre = "mobile" ');
	
	 	return $clients;
	}

	/**
	 * Action du sim swap
	 */
	public static function SimSwapModification($code_client_hto,$carte_sim,$ancienne_sim){
		
		// Récupération de la fiche client
		$client = ClientDao::searchById($code_client_hto);
		$detail_client = ClientDao::searchBySimswap($ancienne_sim);
		$requestType = 'SW';
		
		// Initialisation
			$statut_csv = array(	'DATA'=>'N',
									'Blackberry'=>'N',
									'Foreign Status'=>'N',
									'Voice Bundle'=>'N',
									'SMS'=>'N',
					        		'Other'=>'N');
									
		$data[0] = array(
					"Id" => 1,																	// Compteur 
					"RequestDate" => date("Y-m-d") , 											// Date de création de la ligne
					"RequestType" => $requestType,   											// Type de demande
					"OrigyneId (SIM Serial)" => $carte_sim,										// Carte SIM
					"ExternalReference1 (LastName)" => suppr_spe_char($client[0]['raison_social']),			// Raison sociale de la société
					"ExternalReference2 (FirstName)" => suppr_spe_char($detail_client[0]['utilisateur']),		// Utilisateur de la ligne
					"IVROptionalCode (ZipCode)" => CODE_IVR,									// Code IVR
					"MSISDN" => $detail_client[0]['ndi'],										// MSISDN de la ligne existante
					"DATA" => '', 																// Option DATA à acheter
					"Blackberry" => '',															// Option Blackberry à acheter
					"Foreign Status" => '', 													// Activation ou non des appels internationnals
					"Voice Bundle" => '', 														// Offre voix à acheter
					"SMS" => '', 																// Option SMS à acheter
					"Other" => '' 																// Autre options à acheter
			);
			
		$data2[0] = array(
					"Id" => 1,																	// Compteur 
					"RequestDate" => date("Y-m-d") , 											// Date de création de la ligne
					"RequestType" => $requestType,   											// Type de demande
					"OrigyneId (SIM Serial)" => $carte_sim,										// Carte SIM
					"ExternalReference1 (LastName)" => suppr_spe_char($client[0]['raison_social']),			// Raison sociale de la société
					"ExternalReference2 (FirstName)" => suppr_spe_char($detail_client[0]['utilisateur']),		// Utilisateur de la ligne
					"IVROptionalCode (ZipCode)" => CODE_IVR,									// Code IVR
					"MSISDN" => $detail_client[0]['ndi'],										// MSISDN de la ligne existante
					"DATA" => '', 																// Option DATA à acheter
					"Blackberry" => '',															// Option Blackberry à acheter
					"Foreign Status" => '', 													// Activation ou non des appels internationnals
					"Voice Bundle" => '', 														// Offre voix à acheter
					"SMS" => '', 																// Option SMS à acheter
					"Other" => '',
					"Terminal" => '',			 											// Terminal
					"Offre" => '',
					"Offre Prix" => '',
					"Option_sms" => '',										
					"Prix_sms" => '',
					"Option_data" => '',											
					"Prix_data" => '',	
					"Option_bb" => '',										
					"Prix_bb" => '',	
					"Option_international" => '',											
					"Prix_international" => '',	
					"Reduc. Abonnement" => '',
					"Reduc. Minute National" => '',
					"Reduc. Minute International" => '',
					"Reduc. Option Mobile" => '',
					"Reduc. Terminal" => '',
					"Grille Tarifaire" => '',
					"Forfait Partage" => '',
					"Engagement" => '',
					"Appels Internes" => '' 																
			);
		//changement de la sim dans le detail client
		
		//bloquage de la nouvelle sim
		CarteSimDAO::changerStatut($carte_sim, "Allocated");
		
		// Nom du fichier CSV à générer
		//recup des millisecondes
			$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
			$msec = substr($time, strpos($time, ".") + 1);
		$filename = "ModificationRequest_".date("Ymd_His")."_".$msec.".csv";
		$filename2 = CODE_IVR."_modif_simswap_".date("Ymd_His")."_".$msec.".csv";
		
		//$logger->info("Génération du fichier CSV de demande d'activation : " . $filename);
		
		// Appel de la fonction de génération de fichier CSV
		writeCSV(MM_CSV_PATH,$filename,$data);
		writeCSV(MM_CSV_PATH,$filename2,$data2);
		
		// Envoi sur le serveur en FTP
		if (MM_FTP_ENABLE){
			uploadFile(MM_CSV_PATH.$filename,
						MM_FTP_PROVISIONNING.$filename,
						MM_FTP_HOST,
						MM_FTP_USERNAME,
						MM_FTP_PASSWORD,
						MM_ARCHIVE_PATH."/modification/".$filename);
						
			uploadFile(MM_CSV_PATH.$filename2,
						MM_FTP_PROVISIONNING_OFFRE_COM.$filename2,
						MM_FTP_HOST,
						MM_FTP_USERNAME,
						MM_FTP_PASSWORD,
						MM_ARCHIVE_PATH."/modification/".$filename2);				
			
			//$logger->info("Envoi FTP du fichier de demande d'activation réalisé  : " . MM_FTP_HOST);
			
		} else {
			$logger->info("L'envoi FTP est désactivé");
		}
		
	 }	

}

